http://b.jtthink.com/read.php?tid=1050
http://b.jtthink.com/read.php?tid=676
本课程的大纲说明请戳这里 GO web场景实战课开更(第一篇):极致性能篇。大纲说明
开张课,说明下本课程的技术栈和开发内容
讲解下我们使用到的表。(课件中有近2万左右的商品测试数据,供大家玩耍)
如果纯按照官方文档写代码就太low了。我们把gokit中的三层代码架构迁移到gin中。做个深度使用
上节课我们讲到了三层架构的原理,这节课我们用代码实现出来
基于上节课内容,我们做个商品详细API。作为练习
做个开端。下节课我们正式来压测和优化
今天是个补充课时,简单说明下日志保存和gin的错误拦截(不使用中间件)
为了更过瘾的测试,我们把系统部署到Linux中(gin和mysql)
今天我们来进行最基本的第一次本地压测,并调整一个最基本的系统参数
今天演示下超小连接池,抗高并发
补充课时。可选学,由于网友要求,补充下。mysql缓存本身比较鸡肋。
传统ab工具并不是特别好用,因此今天介绍个go做的压测工具,作为ab的替代品
为了后面的压测,我们增加一个API
由于我们使用了三层架构的代码。因此今天说明下怎么扩展
实际环境我们不可能把gin服务裸对外。一般都会挡一层网关或反代。后面的压测也要基于此,因此我们今天讲下基本的部署
今天进入第二次压测,因为我们现在用nginx容器+go容器+mysql容器。因此压测就要先基于nginx的参数调整
我们数据量填充到20万,瞬间可发现之前API的性能问题。
今天我们来做个按商品分类取出Top10的商品。执行很慢,这也是后面我们要讲的优化套路
为了后面功能的演示,我们要介绍个第三方定时任务库
上节课我们做了一个“很慢的排行榜”。这两节课我们来实现定时任务生成缓存
这节课我们来讲下取值
我们花两课时来实现商品收藏API的编写
本课时讲下收藏功能的事务操作 以及非必要性
做了功能后,我们开始压测API。并做简单优化
本章节是附加章,为了让大家多学点知识点。前面我们用了三层架构来完成gin代码的编写。那么代码量有点大,因此我们花10课时左右做个代码生成小工具
有了上节课知识,我们来生成一个极简的代码
上节课的函数没有返回值。这节课讲解下单和多返回值的代码生成策略
同样,当函数有参数时,我们代码生成策略也需要处理
有了前面的铺垫,今天我们来试着生成第一波代码
承接上节课,有个小坑
为了让我们代码生成器更功能更灵活。我们要实现一个简易的注解解析器
今天就是一个正则培训课。讲解下注解中的参数一下子获取怎么获取
类似@gen(name="shenyi",age=19)这里面的参数如何分别取出
今天我们要把注解映射到具体的struct里。并复习下反射 (本课时课后作业 已经在课件里写好代码了)
今天我们把上节课的代码进行整合,查看最终效果
今天来修复一个大大的BUG。顺便说明一下如果和复制指针对象的基本技巧
之前的代码和注解是独立的,今天我们把代码和注解联合起来
有时我们希望把代码按顺序生成,那么有了前面的知识点,今天实现这个效果并不难
今天实现完,注解就很类似Java或PHP中的注解格式了
今天的演示课很重要。我们初步完成了注解式的代码生成器功能。 下周一举将第二章内容做完
今天是个演示课,经过代码修改,我们实现了一个函数支持多个注解。并相互关联
本课时是第二章最后一课时。随后我们将进入第三章,并把这个小工具放入一个新的课程继续孵化,直至具备开源项目发布条件
今天进入第三章、由于我们使用了三层架构,因此中间件的方式和Gin官方代码是不一样的。今天做个简单演示
承接上节课,我们利用redis写入缓存
这几课时我们来简化、优化Redis库的操作。纯原生使用太难用了
承接上节课,我们来做进一步优化。做一些类PHP函数的封装,大家可以有选择的使用和借鉴
问:为什么有的课程会涨价?
答:课程刚开始更新时是比较便宜的,随着课时的增多会逐步涨到原价
问:课程价格是每节课都要这么多钱?
答:课程价格是指该课程下面所有课时的总价,
问:为啥有课程最后显示课时正在更新?
答:说明我们的讲师还在录制中
问:购买课程后能看多久?
答:终身在线观看